1. The Field of the Invention
The present invention relates to the field of digital video. More specifically, the present invention relates to playing stored digital video in reverse and fast-forward modes at various speeds.
2. The Related Art
The ability to record and replay events using video cameras has transformed entertainment and communications. For example, news events, as well as other happenings can be recorded as they occur and then played back later for large numbers of viewers. Home video cassette recorders have also made recording and play back of events available to the consumer market.
More recently, digital video recorders have been developed. Digital video has certain advantages over conventional analog videotape. Digital video can be read and reproduced non-destructively so that the recorded video suffers little or no degradation and can be available long term for other future reproductions. Digital video can also be sent as an electronic mail attachment or posted on Web sites, which is of great benefit considering the ever-increasing number of users on the Internet.
However, one disadvantage of digital video is the amount of storage space it consumes. Even relatively short video clips can use large amounts of disk space or other storage resources. As a result, a variety of digital video compression techniques were developed to reduce these large storage requirements. One such compression technique for digital video is Moving Pictures Experts Group, or MPEG.
MPEG employs interframe encoding, which means some of the frames are used as reference frames for other frames in the video stream. An MPEG stream includes I-frames, P-frames and B-frames. I-frames are independent frames that may be decompressed and reproduced independently without referring to any other frames in the MPEG video stream. P-frames, or “Predictive” frames, are reproduced using the previous I-frame or P-frame. B-frames, or “Bi-directionally predictive” frames, are reproduced using frames previous to and/or subsequent to the B-frame. Since I-frames do not reference other frames for information, I-frames are typically substantially larger in size than P-frames and B-frames.
When playing an MPEG stream, the whole stream is read and all of the frames are displayed in sequence. MPEG is effective because the visual elements that are lost due to the interframe encoding and decoding processes are not perceived by the human eye to any significant extent. Thus, to the human eye, playback of MPEG compressed digital video at conventional speeds appears true to the original moving image.
FIG. 1a illustrates a common display-order frame sequence (e.g. IBBPBBPBBPBBPBB) used in MPEG where “I”, “P”, and “B” respectively represent an I-frame, a P-frame, and a B-frame. In FIG. 1a, I-frame 1 and I-frame 16 are intracoded, meaning that I-frames 1 and 16 are encoded (and decoded) without using information from other frames in the digital video stream. P-frames are non-intracoded, meaning that P-frames are dependent on other frames in the digital video stream.
A P-frame may be encoded (and decoded) using its own data in addition to data from the preceding I-frame or P-frame in the digital video stream. Thus, P-frame 4 would be temporally predicted from I-frame 1; P-frame 7 would be temporally predicted from P-frame 4; P-frame 10 would be temporally predicted from P-frame 7; P-frame 13 would be temporally predicted from P-frame 10; and P-frame 19 would be temporally predicted from I-frame 16.
B-frames in the illustrated frame sequence are also non-intracoded and thus dependent on other frames in the digital video stream. A B-frame may be encoded (and decoded) using its own data the data from the preceding I-frames or P-frames, and the data from the subsequent I-frame or P-frame. By way of example, B-frame 2 may be encoded (and decoded) using information from both I-frame 1 and P-frame 4.
Digital video display systems may perform conventional fast-forwarding of a digital video stream using MPEG compression by displaying only the I-frames and P-frames. In the frame sequence in FIG. 1a, this would yield an increase in the playback rate by a factor of about 3 since there are typically two B-frames between each subsequent P-frame or between each I frame and its adjacent P-frames. FIG. 1b illustrates a digital video stream using MPEG compression where the playback rate is increased by a factor of three. Note that only 7 frames of the given sequence are displayed in FIG. 1b while 21 frames of the given sequence are displayed in FIG. 1a. 
Digital video display systems might also perform fast-forwarding by displaying only the I-frame data, resulting in an increase in the playback rate by a factor of about 15. A video stream illustrating a 15 times increase in playback rate is shown in FIG. 1c. However, displaying only I-frames, which are relatively large, may exceed the processing capabilities of the display system, as well as make the displayed video stream appear choppy or discontinuous to a viewer.
Since conventional systems increase playback rate by not displaying one or more types of frame data, such as B-frame or P-frame or both, the speeds at which playback may occur are limited. In the frame sequence above, increases in the playback rate would be limited to either a factor of 3 or a factor of 15.
Another problem with conventional digital video playback using MPEG compression is the amount of frame buffering needed to play a digital video stream in reverse mode. This is primarily due to the temporal predictive techniques used to encode and decode P-frames. Since P-frames are predicted from preceding I-frames or P-frames in the video stream, simply reversing the playback sequence is not a viable solution. Reversing the video stream would create a situation were P-frames must be decoded but have no preceding I-frame or P-frame to refer back to.
To solve the problem, conventional playback methods buffer complete frame sequences between adjacent independent frames, I-frames in the case of MPEG, in order to create all the needed frames before reverse mode is initiated. Once the complete frame sequence is buffered it may then be played in reverse mode. However, because all frames in a frame sequence are conventionally buffered, frame sequences of any substantial length require the use of memory resources that would otherwise be available to other parts included in a video playback system.
Another conventional method involves the use of trick mode sequences. A sequence of video frames is typically encoded using MPEG standards for playing the sequence in the forward temporal direction at a normal rate. The forward mode sequence may be decoded, and then re-encoded for playing the sequence in the reverse temporal direction. This re-encoded sequence is considered a reverse trick mode sequence and, when played back using an MPEG decoder, displays the video images in the reverse temporal direction.
The use of trick modes is advantageous in that the generation of the reverse trick mode may be accomplished without requiring any user intervention. Also, rewinding is relatively simple given the existence of the reverse trick mode sequence. Upon receiving a user command to reverse play, the system merely switches the video source from the forward mode sequence to the reverse trick mode sequence.
However, the user of trick modes requires the generation of a reverse trick mode sequence, which can take extensive processor resources. In addition, the reverse trick mode sequence may have high memory requirements. Accordingly, the use of trick modes may be undesirable in systems with relatively small processing and memory capabilities. Furthermore, the reverse trick mode video data is generated and stored prior to the time of playback at which point the need for the reverse trick mode video data is speculative. Thus, systems that use trick modes typically store, in addition to the normal mode video data, a large volume of trick mode data, much of which may never be used by the viewer.
Therefore, what are desired are systems and methods for playing stored digital data in reverse and fast-forward modes at various speeds, where the systems and methods also conserve resources of associated display systems. Also, what are desired are systems and methods for achieving reverse play of all the frames of digital video without having to use extensive processor and memory resources.